package sv.gob.mh.dgii.eda.dec.commons;

import sv.gob.mh.dgii.common.Utils;

public enum TipoProceso {

    RECEPCION("00", "Recepcion"), DIGITACION("01", "Digitacion"), VERIFICACION_POST_CONTROL_CALIDAD("20", "Verificado Post control de calidad"), CONTROL_CALIDAD("10",
    "Control de calidad"), POSTEO("70", "Posteo"), LISTA_PARA_POSTEO("60", "Lista para Posteo"), DV_VERIFICACION("73", "Verificacion"), DV_FISCALIZACION("74",
    "Fiscalizacion"), DV_RESOLUCION("75", "Resolucion"), DV_FIRMA("76", "Firma"), DV_NOTIFICACION("77", "Notificacion"), DV_PAGO("78", "A Pago"), DV_PAGADA("79", "Pagada"), DV_ARCHIVO(
    "80", "Archivo"), DV_ECONOMIA("81", "En Economica"), DV_TASACION("82", "Tasacion");
    private final String descripcion;
    private final String codigo;

    TipoProceso(String codigo, String descripcion) {
        this.codigo = codigo;
        this.descripcion = descripcion;

    }

    public String getCodigo() {
        return codigo;
    }

    public String getDescripcion() {
        return this.descripcion;
    }

    public static String getDescripcionByEstado(String proceso) {
        if (!Utils.isNullOrEmpty(proceso)) {

            if (proceso.equals(RECEPCION.getCodigo())) {
                return RECEPCION.getCodigo() + "-" + RECEPCION.getDescripcion();
            }
            if (proceso.equals(DIGITACION.getCodigo())) {
                return DIGITACION.getCodigo() + "-" + DIGITACION.getDescripcion();
            }
            if (proceso.equals(VERIFICACION_POST_CONTROL_CALIDAD.getCodigo())) {
                return VERIFICACION_POST_CONTROL_CALIDAD.getCodigo() + "-" + VERIFICACION_POST_CONTROL_CALIDAD.getDescripcion();
            }
            if (proceso.equals(CONTROL_CALIDAD.getCodigo())) {
                return CONTROL_CALIDAD.getCodigo() + "-" + CONTROL_CALIDAD.getDescripcion();
            }
            if (proceso.equals(POSTEO.getCodigo())) {
                return POSTEO.getCodigo() + "-" + POSTEO.getDescripcion();
            }
            if (proceso.equals(LISTA_PARA_POSTEO)) {
                return LISTA_PARA_POSTEO.getCodigo() + "-" + LISTA_PARA_POSTEO.getDescripcion();
            }
            return proceso;

        }
        return "Sin proceso";
    }

    public static String getDescripcionByEstadoDv(String proceso) {
        String desc = null;
        if (!Utils.isNullOrEmpty(proceso)) {
            desc = proceso;
            if (proceso.equals(RECEPCION.getCodigo())) {
                desc = RECEPCION.getDescripcion();
            }
            if (proceso.equals(DIGITACION.getCodigo())) {
                desc = "Digitacion";
            }
            if (proceso.equals(CONTROL_CALIDAD.getCodigo())) {
                desc = "Digitacion";
            }
            if (proceso.equals(VERIFICACION_POST_CONTROL_CALIDAD.getCodigo())) {
                desc = VERIFICACION_POST_CONTROL_CALIDAD.getDescripcion();
            }
            if (proceso.equals(LISTA_PARA_POSTEO.getCodigo())) {
                desc = LISTA_PARA_POSTEO.getDescripcion();
            }
            if (proceso.equals(POSTEO.getCodigo())) {
                desc = "Recibida";
            }
            if (proceso.equals(DV_VERIFICACION.getCodigo())) {
                desc = DV_VERIFICACION.getDescripcion();
            }
            if (proceso.equals(DV_FISCALIZACION.getCodigo())) {
                desc = DV_FISCALIZACION.getDescripcion();
            }
            if (proceso.equals(DV_RESOLUCION.getCodigo())) {
                desc = DV_RESOLUCION.getDescripcion();
            }
            if (proceso.equals(DV_FIRMA.getCodigo())) {
                desc = DV_FIRMA.getDescripcion();
            }
            if (proceso.equals(DV_NOTIFICACION.getCodigo())) {
                desc = DV_NOTIFICACION.getDescripcion();
            }
            if (proceso.equals(DV_PAGO.getCodigo())) {
                desc = DV_PAGO.getDescripcion();
            }
            if (proceso.equals(DV_ARCHIVO.getCodigo())) {
                desc = DV_ARCHIVO.getDescripcion();
            }
            if (proceso.equals(DV_PAGADA.getCodigo())) {
                desc = DV_PAGADA.getDescripcion();
            }
            if (proceso.equals(DV_ECONOMIA.getCodigo())) {
                desc = DV_ECONOMIA.getDescripcion();
            }
            if (proceso.equals(DV_TASACION.getCodigo())) {
                desc = DV_TASACION.getDescripcion();
            }
            return desc.toUpperCase();
        }
        return "Sin proceso";
    }
}
